import java.util.Arrays;
import java.util.Comparator;

public class LeetCode435 {
    public int eraseOverlapIntervals(int[][] intervals) {
        if (intervals.length == 0) {
            return 0;
        }
        //按照每个区间的结束时间进行升序排序
        Arrays.sort(intervals, (l1, l2) -> Integer.compare(l1[1] , l2[1]));
        int count = 1;//至少有一个区间是非重叠的
        int end = intervals[0][1];//第一个区间的结束时间

        for (int i = 1; i < intervals.length; i++) {
            //如果当前的开始事件>=上一个区间的结束时间，则不重叠
            if (intervals[i][0] >= end) {
                count++;//选择新的非重叠区间
                end = intervals[i][1];//更新结束事件为当前区间的结束时间
            }
        }
        //总区间 - 非重叠区间的数量 = 需要溢出的区间数量
        return intervals.length -count;
    }
}
